package com.composite.demo2;

/**组合模式又叫部分-整体模式，将对象组合成树状的层次结构的模式，表示部分和整体的关系。通常有以下几个角色：

抽象构件角色：为树叶结构和树枝结构声明公共接口，并实现默认行为。

树叶结构角色：组合中的叶子节点对象，没有子节点。

树枝结构对象：组合中的分支节点对象，有子节点。

     组合模式的实现方式可分为透明式和安全式，安全式：管理构件的方法放到树枝中；透明式：把所有方法在抽象中声明，子类可以空实现

     举例说明：超市购物袋子为例，大袋子里有小袋子，还有其他商品，小袋子里还有其他商品。
 * @author zhangsulei
 *
 */
public class Test {

	public static void main(String[] args) {
		Bags bigBag = new Bags();
		bigBag.add(new Milk());
		Bags milddleBag = new Bags();
		milddleBag.add(new Apple());
		milddleBag.add(new Apple());
		bigBag.add(milddleBag);
		//展示袋子中购买的物品
		bigBag.show();
		//i am milk.
		//i am apple.
		//i am apple.
	}

}
